iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0

在 Ruby 內有符號(Symbol)這個物件,他跟字串的用法蠻像的,但本質上則不一樣。
究竟 Symbol 到底是什麼呢? 讓我們來看看吧!

阿修說文解字

何謂 Symbol

  • 有名字的物件,以:開頭,後面第一個字不能為數字
  • id 固定
  • 因為 id 固定,查找、比較的速度比字串還快
  • 舊版 ruby 用完記憶體不會歸還 (Memory Leak),但新版 Ruby 用完會歸還
  • 本身就是值,不能拿來當變數用

範例(id 固定):

A = :abc
B = "abc"

puts A.object_id
puts B.object_id

在 Ruby 內所有物件都有 id ,可以用 .object_id 來找到該物件的 id。
如果重複執行以上範例會發現 A 的 id 不會變化,而 B 的 id 會一直變化。

範例(本身就是值,不能拿來當變數用):

:abc = "aaa"

以上範例會直接噴錯:
syntax error, unexpected '=', expecting end-of-input :abc = "aaa"


上一篇
Day 25 Ruby 變數、常數差異
下一篇
Day 27 Ruby == vs ===
系列文
網頁前後端寶石庫-礦坑補完計畫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
王天君
iT邦新手 4 級 ‧ 2021-10-11 20:49:43

/images/emoticon/emoticon08.gif一起衝啊!

阿修 iT邦新手 4 級 ‧ 2021-10-11 20:54:05 檢舉

衝衝衝,剩最後四天就要完賽了!

王天君 iT邦新手 4 級 ‧ 2021-10-11 21:17:18 檢舉

真的,剩下4天了,感動!/images/emoticon/emoticon02.gif

我要留言

立即登入留言